setmacro rx-region 0 (region-top while y=<\$my (rx-indentline down))
setmacro rx-when 0 (prevf SELECT if \$fail (rx-err (\\\$currentword without SELECT)) rx-setx)
setmacro rx-else 0 (closer? END THEN prev2 ELSE \$closer if c="ELSE" (rx-err (Unbound ELSE)) if c="END" (rx-matchend last prev2 ELSE THEN if c<>"THEN" (rx-err (Unbound ELSE))) prev2 IF WHEN if c="WHEN" (rx-err (Unbound ELSE)) firstnb setx)
setmacro rx-matchend 0 (set yy \$lineno rx-prevds rx-countends while 1 (repeat \\\$cnt rx-prevds set old \\\$cnt rx-countends intcmp \\\$cnt \\\$old if 3 break) repeat \$cnt rx-prevds)
setmacro rx-prevds 0 (prev2 DO SELECT rx-err? (Unbound END))
setmacro rx-countends 0 (set cnt 0 while y<\$yy (wfind END inc cnt))
setmacro rx-setx 0 (set x \$firstnb add x \$tabstop)
setmacro rx-1 0 (set x 1)
setmacro rx-do 0 (set cnt 0 while 1 (prev2 DO END if \\\$fail (rx-1 break) if c="END" (inc cnt prev2 DO SELECT rx-err? (Unbound END) if c="SELECT" (dec cnt)) if c="DO" (intcmp \\\$cnt 0 ifelse 3 rx-setx rx-1 break)))
setmacro rx-end 0 (push pos prev2 DO SELECT pop pos rx-err? (Unbound END) rx-matchend firstnb setx)
setmacro rx-getcol 0 (rx-goprevline last wleft do (when c="THEN" rx-setx when c="ELSE" rx-setx pick pos rx-do))
setmacro rx-goprevline 0 (while 1 (findstr (\\\$prevnbline) fail? prev if \\\$fail break if c<>"/*" break))
setmacro rx-indentline 0 (firstnb push pos do (when c="ELSE" rx-else when c="END" rx-end when c="WHEN" rx-when when c="OTHERWISE" rx-when rx-getcol) pop pos dec x pos-line \$x)